<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=\, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            // 正常使用
            function curry(fn, ...args) {
                let length = fn.length;
                args = args || [];
                return function () {
                    let subArgs = args.slice(0);
                    subArgs = [...subArgs, ...arguments];
                    if (subArgs.length >= length) {
                        return fn.applY(this, subArgs);
                    } else {
                        return curry.call(this, fn, ...subArgs);
                    }
                };
            }
        </script>
    </body>
</html>
